1. Field of the Invention
The invention relates generally to serial attached SCSI (“SAS”) devices and more specifically relates to improvements in integrating a desired SAS address and/or other unique information into a SAS component such as at time of manufacture or design/debug.
2. Discussion of Related Art
It is generally known in the computing industry that peripheral interface circuit boards or integrated circuits are coupled with general or special purpose processors to provide I/O interfacing to peripheral devices by the general or special purpose processor. One common interface utilized for coupling storage peripheral devices to a processor is the SAS interface. SAS comprises a family of standards for coupling high speed peripheral devices (such as storage devices) to computing systems or processors. For example, many present-day high performance disk drives utilize the SAS communication protocol standards through appropriate high speed serial communication media to permit high-speed exchange of information between the processor or computing system and an attached storage peripheral device.
In accordance with the SAS specifications a SAS initiator device establishes connections to one or more SAS target devices through zero or more intermediate SAS expander devices. A collection of interconnected SAS initiators, SAS targets, and SAS expanders are generally referred to as a SAS domain. Within a SAS domain, each component (e.g., SAS initiator, SAS target, or SAS expander) is identified by a unique SAS address. The unique SAS address is typically determined by the manufacturer of the SAS peripheral device and encoded within a suitable nonvolatile memory associated with the SAS device by the manufacturer thereof. Other information unique to the particular SAS component such as board trace number, configuration page, boot record, etc. may also be programmed within the non-volatile memory component of the SAS component. In addition, some common elements such as common data values and programmed instructions may also be programmed within the same memory component or may be programmed in other memory components of the SAS component.
For example, a data processing system may perform the role of a SAS initiator by integrating a SAS interface chip or SAS host bus adapter (typically including a SAS interface chip). The SAS interface integrated circuit and/or SAS host bus adapter utilizing such an integrated circuit is programmed at some point in the manufacturing process to embed the unique SAS address and other unique information. International standards organizations and/or trade associations are typically responsible for assigning ranges of predefined SAS addresses for use by manufacturers in producing their SAS related circuits and components. Thus, in the manufacturing process, a manufacturer selects a next available SAS address to be associated with each produced SAS component.
The design of a SAS component (such as a SAS expander, a SAS host bus adapter, or other SAS components) often includes a customized integrated circuit design by the component manufacturer. The integrated circuit often includes a memory component (e.g., non-volatile memory) in which customized information is embedded (such as the SAS address, etc.). Many manufacturers of SAS components utilize a third party vendor to actually fabricate the integrated circuit design—(e.g., a chip foundry).
As presently practiced it is common for the SAS component manufacturer to provide a design file to the chip foundry to facilitate fabrication of the SAS interface chip to be integrated with their SAS component design. It is further common for the SAS component manufacturer/designer to supply a single design file to be used by the chip foundry in fabrication of a plurality of identical SAS interface integrated circuits. In other words, a single integrated circuit design is provided to the chip foundry essentially devoid of pre-programmed SAS address information. The plurality of identical, un-programmed SAS interface chips may then be returned from the chip foundry vendor to the SAS component manufacturer/designer for appropriate programming of the required SAS address and other information unique to the particular SAS component which will utilize the circuit. The SAS component manufacturer/designer then utilizes the SAS component in a special programming mode to permit programming of the required unique information into the SAS interface integrated circuit provided by the chip foundry. Thus the SAS component manufacturer/designer must perform specialized tasks solely for the purpose of programming the supplied integrated circuit interface chip of the SAS component. Such specialized tasks require additional time and may require particular additional tools and thus may negatively impact the cost of the SAS component.
It is evident from the above discussion that a need exists for improved methods and systems for initially programming or defining the SAS address and other unique information a SAS component.